/**
 * 格式化文件大小（字节转换为 B/KB/MB/GB/TB）
 * @param {number} bytes - 文件大小（字节数，必须为非负整数）
 * @returns {string} 格式化后的大小字符串（如 "1.23 MB"）
 */
export function formatFileSize(bytes) {
    // 处理边界情况（非数字或负数）
    if (typeof bytes !== 'number' || bytes < 0 || isNaN(bytes)) {
        return '0 B';
    }

    // 定义单位数组（从 B 到 TB）
    const units = ['B', 'KB', 'MB', 'GB', 'TB'];
    // 计算最大单位索引（TB 对应索引 4）
    let unitIndex = 0;
    let size = bytes;

    // 循环计算最合适的单位（直到达到 TB 或 size 小于 1024）
    while (size >= 1024 && unitIndex < units.length - 1) {
        size /= 1024;
        unitIndex++;
    }

    // 保留两位小数并拼接单位
    return `${size.toFixed(2)} ${units[unitIndex]}`;
}